package com.fandou.airobot.database;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
import androidx.room.Update;

import java.util.List;

/**
 * @author Jm
 * @date 2020/6/2414:00
 * @description
 */
@Dao
public interface AlarmDao {

    @Query("SELECT * FROM alarm")
    List<Alarm> getAllAlarms();

    /**
     * 注意，虽然插入参数支持多个，但是这里限定为只能一次插入一个数据。
     *  因为：当@Insert注解的方法只有一个参数的时候，这个方法也可以返回一个long，当@Insert注解的方法有多个参数的时候则可以返回long[]或者r List<Long>。long都是表示插入的rowId。
     * 如果调用  long insertAlarm(Alarm alarm); 这个返回值long是成功的个数
     * 所以这里的参数接受必须是数组，才能拿到新插入数据的id
     *
     * @param alarm Alarm
     * @return rowId array
     */
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    List<Long> insertAlarm(Alarm... alarm);

    @Delete
    int deleteAlarm(Alarm alarm);

    @Update
    int updateAlarm(Alarm alarm);

}
